home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
trueSpace 7.6
/
tS761B8Std.exe
/
{app}
/
Scripts
/
MaterialEditor
/
Bricks
/
Compound
/
Gooch2.Brick.xml
< prev
next >
Wrap
Extensible Markup Language
|
2008-06-10
|
2KB
|
36 lines
<?xml version="1.0" encoding="utf-8" ?>
<ME_BRICK GUID="{EF72646A-AB2F-4082-9CEF-DB9BDC49898B}" Name="RtUGooch2" GUIName="Gooch lighting 2" Description="The Gooch-like non-photorealistic lighting model">
<ME_BRICK_INPUTPARAM GUID="{307EFF3A-303C-4EED-BCCA-79F53BEC4000}" Name="CoolColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{962A0D6A-8D7C-475C-B896-BA8F358DA3AF}" Name="WarmColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{DE113F2A-C857-4BD9-97C9-EF1AF14DCE70}" Name="DiffuseColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{68196030-E212-42E1-9049-958CEEBCFCBF}" Name="SpecularColor" Type="RtFloat4"/>
<ME_BRICK_INPUTPARAM GUID="{0B98CE60-034B-4F81-B550-0D7E81DF2F06}" Name="Shininess" Type="RtFloat"/>
<ME_BRICK_INPUTPARAM GUID="{40F86F38-13BF-4B47-9ACE-953C579AEEE8}" Name="NormalVector" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{863381F4-E170-4AA2-9F16-DA8BF778CC35}" Name="EyeDirection" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{17241ABB-DA2F-4F39-8B56-D48D56F33BD9}" Name="LightDirection" Type="RtFloat3"/>
<ME_BRICK_INPUTPARAM GUID="{DCE3FC75-3792-43F7-A953-8AB02200F2D5}" Name="LightColor" Type="RtFloat4"/>
<ME_BRICK_OUTPUTPARAM GUID="{698A4E5C-224F-4260-8125-21375404EFFF}" Name="ResultColor" Type="RtFloat4"/>
<ME_BRICK_CODE><![CDATA[
void RtUGooch2(in RtFloat4 CoolColor, in RtFloat4 WarmColor,
in RtFloat4 DiffuseColor,
in RtFloat4 SpecularColor, in RtFloat Shininess,
in RtFloat3 NormalVector, in RtFloat3 EyeDirection,
in RtFloat3 LightDirection, in RtFloat4 LightColor,
out RtFloat4 ResultColor)
{
RtFloat DiffuseCoef = rtx_Dot(NormalVector, LightDirection);
RtFloat BlendVal = DiffuseCoef * 0.5f + 0.5f;
ResultColor = rtx_Lerp(CoolColor, WarmColor, BlendVal);
if (DiffuseCoef>0)
{
RtFloat3 vLightReflect = rtx_Reflect(rtx_Negate(LightDirection), NormalVector);
RtFloat EyeDotReflect = rtx_Saturate(rtx_Dot(EyeDirection, vLightReflect));
RtFloat SpecularCoef = rtx_Pow(EyeDotReflect, Shininess);
ResultColor = ResultColor + (DiffuseColor * DiffuseCoef + SpecularColor * SpecularCoef) * LightColor;
}
ResultColor.a = DiffuseColor.a;
}
]]></ME_BRICK_CODE>
</ME_BRICK>